// 基金数据测试脚本
const testFundCodes = [
    '000001', // 华夏成长混合
    '000002', // 华夏成长混合后端
    '000003', // 中海优质成长混合
    '000004', // 中海优质成长混合后端
    '000005'  // 嘉实成长收益混合A
];

// 模拟API调用函数（需要替换为实际的API调用）
async function testFundNavData(fundCode) {
    try {
        console.log(`正在测试基金代码: ${fundCode}`);
        
        // 这里应该调用实际的API来获取基金净值数据
        // 由于这是一个测试脚本，我将模拟返回数据
        const mockData = {
            fund_code: fundCode,
            fund_name: getFundName(fundCode),
            nav_data: [
                {
                    date: '2024-01-15',
                    nav: (1.0 + Math.random() * 0.5).toFixed(4), // 模拟净值
                    accum_nav: (1.0 + Math.random() * 0.8).toFixed(4), // 模拟累计净值
                    daily_return: ((Math.random() - 0.5) * 4).toFixed(2) // 模拟日收益率
                },
                {
                    date: '2024-01-16',
                    nav: (1.0 + Math.random() * 0.5).toFixed(4),
                    accum_nav: (1.0 + Math.random() * 0.8).toFixed(4),
                    daily_return: ((Math.random() - 0.5) * 4).toFixed(2)
                }
            ]
        };
        
        console.log(`基金 ${fundCode} (${mockData.fund_name}) 数据:`);
        console.log(`最新净值: ${mockData.nav_data[0].nav}`);
        console.log(`累计净值: ${mockData.nav_data[0].accum_nav}`);
        console.log(`日收益率: ${mockData.nav_data[0].daily_return}%`);
        console.log('---');
        
        return {
            success: true,
            fund_code: fundCode,
            data: mockData
        };
    } catch (error) {
        console.error(`测试基金 ${fundCode} 失败:`, error);
        return {
            success: false,
            fund_code: fundCode,
            error: error.message
        };
    }
}

function getFundName(fundCode) {
    const fundNames = {
        '000001': '华夏成长混合',
        '000002': '华夏成长混合后端',
        '000003': '中海优质成长混合',
        '000004': '中海优质成长混合后端',
        '000005': '嘉实成长收益混合A'
    };
    return fundNames[fundCode] || '未知基金';
}

// 运行测试
async function runTest() {
    console.log('开始基金净值数据测试...\n');
    
    const results = [];
    for (const fundCode of testFundCodes) {
        const result = await testFundNavData(fundCode);
        results.push(result);
    }
    
    // 生成测试报告
    console.log('\n=== 测试报告 ===');
    console.log(`测试基金数量: ${results.length}`);
    console.log(`成功数量: ${results.filter(r => r.success).length}`);
    console.log(`失败数量: ${results.filter(r => !r.success).length}`);
    
    if (results.filter(r => !r.success).length > 0) {
        console.log('\n失败的基金:');
        results.filter(r => !r.success).forEach(r => {
            console.log(`- ${r.fund_code}: ${r.error}`);
        });
    }
    
    console.log('\n=== 数据摘要 ===');
    results.filter(r => r.success).forEach(r => {
        const latestData = r.data.nav_data[0];
        console.log(`${r.fund_code} (${getFundName(r.fund_code)}):`);
        console.log(`  最新净值: ${latestData.nav}`);
        console.log(`  累计净值: ${latestData.accum_nav}`);
        console.log(`  日收益率: ${latestData.daily_return}%`);
    });
    
    console.log('\n测试完成！');
}

// 如果直接运行此脚本
if (typeof require !== 'undefined' && require.main === module) {
    runTest();
}

// 导出函数供其他模块使用
module.exports = {
    testFundNavData,
    runTest,
    testFundCodes
};